#ifndef HEXAGON_H
#define HEXAGON_H

#include "CloseShape.h"

class Hexagon : public CloseShape {
public:
    explicit Hexagon(const QPointF& pos = { 0, 0 });
    Hexagon(const Hexagon& other);

    std::shared_ptr<IShape> clone() const override;
    std::unique_ptr<IShape> init(const QPointF& pos = { 0, 0 }) override;
    QString toSVG() const override;
    static std::unique_ptr<Hexagon> createFromSVG(const QDomElement& element);
    QPainterPath shape() const override;
    std::vector<QPointF> linkPoints() const override;

private:
    std::vector<QPointF> getVertices() const;
};

#endif // HEXAGON_H